package org.mx.spring.utils;

import org.mx.StringUtils;
import org.mx.spring.i18n.I18nService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 描述： I18N工具类
 *
 * @author john peng
 * Date time 2019/7/26 8:13 PM
 */
public class I18nMessageUtils {
	private static final Logger logger = LoggerFactory.getLogger(I18nMessageUtils.class);

	/**
	 * 从I18N资源包中获取指定的消息
	 *
	 * @param key            关键字
	 * @param defaultMessage 默认消息，当资源包不存在指定消息时返回
	 * @return 消息
	 */
	public static String getI18nMessage(String key, String defaultMessage) {
		String message = null;
		if (SpringContextHolder.contains("i18nService")) {
			try {
				I18nService i18nService = SpringContextHolder.getBean(I18nService.class);
				if (i18nService != null) {
					message = i18nService.getMessage(key);
				}
			} catch (Exception ex) {
				if (logger.isDebugEnabled()) {
					logger.debug(String.format("Get message[%s] from i18n fail.", key), ex);
				}
			}
		}
		return StringUtils.isBlank(message) ? defaultMessage : message;
	}
}
